package Login

import (
	"clouds.lgb24kcs.cn/controllers/user/request"
	"clouds.lgb24kcs.cn/errorx"
	"clouds.lgb24kcs.cn/global"
	"clouds.lgb24kcs.cn/services/user"
	"clouds.lgb24kcs.cn/utils"
	"github.com/gin-gonic/gin"
)

// @Summary 获取短信验证码
// @Success 200 {string} string json{"code","message"}
// @Param mobile query int true "手机号"
// @Router  /user/v1/gain_sm_code  [get]
// @version 1.0
func GainSMCode(c *gin.Context) {
	req := request.GainSmCodeReq{}
	if err := c.ShouldBindQuery(&req); err != nil {
		utils.Fail(c, errorx.VerifyError, err.Error())
	} else {
		err := utils.SendSMCode(req.Mobile)
		if err != nil {
			utils.Fail(c, errorx.UserLogin, err.Error())
		} else {
			utils.Success(c, 0, "验证码发送成功")
		}
	}
}

// @Summary  短信登录
// @Success 200 {string} string json{"code","message"}
// @Param data body request.SMCodeReq{} true "添加请求参数"
// @Router  /user/v1/sm_code_login  [post]
// @version 1.0
func SmCodeLogin(c *gin.Context) {
	/*短信验证码登录*/
	req := request.SMCodeReq{}
	if err := c.ShouldBindJSON(&req); err != nil {
		utils.Fail(c, errorx.VerifyError, err.Error())

	} else {
		get, err := utils.Get(req.Mobile)
		if err != nil {
			global.APP.Log.Error(err.Error())
			utils.Fail(c, errorx.UserLogin, err.Error())
		} else {

			if get == req.Code {
				user.UserApi.SMCode(c, req)
			} else {
				utils.Fail(c, errorx.UserLogin, "验证码错误")
			}
		}
	}
}
